﻿using System;

namespace HW
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1 test
            Console.WriteLine(IsEven(5));
            Console.WriteLine(IsEven(6));

            // 2 test
            double[] testArray = { 1, 10, 2, 10, 3, 0, -1, 10 };
            Console.WriteLine(GetMaxValueIndex(testArray));

            Console.WriteLine("------------------------------");

            // 3 test
            int[] result = GetMaxValueIndexes(testArray);

            PrintArray(result);
        }

        static void PrintArray(int[] array)
        {
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine(array[i]);
            }
        }

        /*
        1. Գրել ֆունկցիա, որը կվերադարձնի true, եթե արգումենտում փոխանցված ամբողջ թիվը զույգ է և false՝ եթե կենտ է։
        */
        static bool IsEven(int x)
        {
            return (x % 2 == 0);
        }

        /*
        2. Գրել ֆունկցիա, որը կվերադարձնի արգումենտում փոխանցված թվային զանգվածի ամենամեծ (ամենափոքր) էլեմենտի ինդեքսը։
        */
        // {1, 10, 2, 10, 3}
        //  0   1  2   3  4
        static int GetMaxValueIndex(double[] array)
        {
            double max = array[0];
            int index = 0;

            for (int i = 1; i < array.Length; i++)
            {
                if(array[i] >= max)
                {
                    max = array[i];
                    index = i;
                }
            }

            return index;
        }

        /*
        3. Return the indexes of the maximum values of array
        */
        static int[] GetMaxValueIndexes(double[] array)
        {
            // Find the max value

            double max = array[0];

            for (int i = 1; i < array.Length; i++)
            {
                if (array[i] > max)
                {
                    max = array[i];
                }
            }

            // Find max values quantity

            int quantity = 0;

            for (int i = 0; i < array.Length; i++)
            {
                if(array[i] == max)
                {
                    quantity++;
                }
            }

            // Collect max values indexes

            int[] indexes = new int[quantity];
            int currentIndex = 0;

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == max)
                {
                    indexes[currentIndex] = i;
                    currentIndex++;
                }
            }

            return indexes;
        }

    }
}
